package com.aitao.beans;


import com.aitao.enums.MimeType;

import java.io.IOException;
import java.io.InputStream;

/**
 * 扩展文件接口
 *
 * @Company QAX
 * @Author : ai.tao
 * @Create : 2022/2/23 15:48
 */
public interface IFile {
    /**
     * 检测文件类型
     *
     * @return {@link String 文件类型}
     */
    MimeType getMimeType();

    /**
     * 文件是否合法
     * 
     * @return 校验文件是否合法
     */
    boolean isLegal();

    /**
     * 获取文件大小
     * 
     * @return 字节数
     */
    long getSize() throws IOException;

    /**
     * 转换成流对象
     * 
     * @return {@link InputStream}
     */
    InputStream toInputStream() throws IOException;

    /**
     * 获取文件扩展名
     * 
     * @return {@link String}
     */
    String getExtensionName();
}
